//
//  Branch.swift
//  GroupPattern
//
//  Created by mac on 2017/11/15.
//  Copyright © 2017年 RRC. All rights reserved.
//

import Foundation



//分支的节点实现
/*
public class Branch:IBranch{
    ///存储子节点的信息
    private var subordinateList = [Any]()
    ///树枝节点的名称
    private var name = ""
    ///树枝节点的职位
    private var position = ""
    ///树枝节点的薪水
    private var salary = 0
    
    //通过构造函数传递树枝节点的参数
    init(name:String, position:String, salary:Int) {
        self.name = name
        self.position = position
        self.salary = salary
    }
    
    //获取自己树枝节点的信息
    func getInfo() -> String {
        var info = ""
        info = "名称：" + self.name
        info = info + "\t职位：" + self.position
        info = info + "\t薪水：\(self.salary)"
        return info
    }
//    //增加一个子树枝节点
//    func add(branch: IBranch) {
//        self.subordinateList.append(branch)
//    }
//    //增加一个叶子节点
//    func add(leaf: ILeaf) {
//        self.subordinateList.append(leaf)
//    }
//    //获得下级的信息
//    func getSubordinateInfo<T>() -> [T] {
//        return self.subordinateList as! [T]
//    }
    
    //修改
    func addSubordinate(corp: ICorp) {
        self.subordinateList.append(corp)
    }
    
    func getSubordinate() -> [ICorp] {
        return self.subordinateList as! [ICorp]
    }
}
 */

//修改Branch类
public class Branch:Crop{
    //领导下边有哪些下级领导和小兵
    var subordinateList = [Crop]()
    
    override init(name:String, position:String, salary:Int) {
        super.init(name: name, position: position, salary: salary)
    }
    
    //增加一个下属，可能是小头目，也可能是个小兵
    func addSubordinate(corp:Crop){
        corp.setParent(parent: self)//设置父节点
        self.subordinateList.append(corp)
    }
    
    //我有哪些下属
    func getSubordinate() -> [Crop] {
        return self.subordinateList
    }
    
}
